home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 1.iso / toolbox / FAQs / SGIfaqs / SGI-Performer-faq < prev    next >
Text File  |  1996-11-11  |  50KB  |  1,348 lines

  1.  
  2. From: sgi-faq@viz.tamu.edu (The SGI FAQ group)
  3. Newsgroups: comp.sys.sgi.misc,comp.answers,news.answers
  4. Subject: SGI performer Frequently Asked Questions (FAQ)
  5. Supersedes: <performer_786697207@viz.tamu.edu>
  6. Followup-To: comp.sys.sgi.misc
  7. Date: 20 Dec 1994 06:57:58 GMT
  8. Organization: Visualization Lab, Texas A&M University
  9. Lines: 1329
  10. Approved: news-answers-request@mit.edu
  11. Expires: 17 Jan 1995 07:00:07 GMT
  12. Message-ID: <performer_787906807@viz.tamu.edu>
  13. Reply-To: sgi-faq@viz.tamu.edu (The SGI FAQ group)
  14. NNTP-Posting-Host: viz.tamu.edu
  15. Originator: sgi-faq@viz
  16.  
  17. Archive-name: sgi/faq/performer
  18. Last-modified: Sat Dec 17 12:14:20 CST 1994
  19.  
  20.     SGI performer Frequently Asked Questions (FAQ)
  21.  
  22. This is one of the Silicon Graphics FAQ series, which consists of:
  23.  
  24.     SGI admin FAQ - IRIX system administration
  25.     SGI apps FAQ - Applications and miscellaneous programming
  26.     SGI audio FAQ - Audio applications and programming
  27.     SGI graphics FAQ - Graphics and user environment customization
  28.     SGI hardware FAQ - Hardware
  29.     SGI impressario FAQ - IRIS Impressario
  30.     SGI inventor FAQ - IRIS Inventor
  31.     SGI misc FAQ - Introduction & miscellaneous information
  32.     SGI movie FAQ - Movies
  33.     SGI performer FAQ - IRIS Performer
  34.     SGI pointer FAQ - Pointer to the other FAQs
  35.  
  36. Read the misc FAQ for information about the FAQs themselves.  Each FAQ
  37. is posted to comp.sys.sgi.misc and to the news.answers and comp.answers
  38. newsgroups (whose purpose is to store FAQs) twice per month.  If you
  39. can't find one of the FAQs with your news program, you can get it by
  40. anonymous FTP from one of these sites:
  41.  
  42.     viz.tamu.edu:/pub/sgi/faq/
  43.     rtfm.mit.edu:/pub/usenet/news.answers/sgi/faq/
  44.     ftp.uu.net:/usenet/news.answers/sgi/faq/
  45.  
  46. Note that rtfm.mit.edu is home to many other FAQs and informational
  47. documents, and is a good place to look if you can't find an answer here.
  48. If you can't use FTP, send mail to mail-server@rtfm.mit.edu with the
  49. word 'help' on a line by itself in the text, and it will send you a
  50. document describing how to get files from rtfm.mit.edu by mail. Send the
  51. command 'send usenet/news.answers/sgi/faq/misc' to get the SGI misc FAQ,
  52. and similarly for the other FAQs. Finally, the FAQs are on the World
  53. Wide Web at
  54.  
  55.     http://www.cis.ohio-state.edu/hypertext/faq/usenet/sgi/top.html
  56.  
  57. The SGI FAQs are freely distributable and we encourage wide circulation.
  58. You MUST keep the FAQs intact, including headers and this notice.  The
  59. contents are accurate as far as we know, but the usual disclaimers
  60. apply. (In particular, copies of the SGI FAQs published on paper or
  61. CD-ROM are certain to be out of date!) Please send additions and changes
  62. to sgi-faq@viz.tamu.edu.
  63.  
  64. Topics covered in this FAQ:
  65. ---------------------------
  66.    -1- What is IRIS Performer?
  67.    -2- Where can I get more technical information about IRIS Performer?
  68.    -3- Where can I get more product information about IRIS Performer?
  69.    -4- How does IRIS Performer relate to IRIS Inventor?
  70.    -5- What are the released versions of IRIS Performer?
  71.    -6- Is there a IRIS Performer file format?
  72.    -7- What database file formats can IRIS Performer read?
  73.    -8- Is there an IRIS Inventor file reader for IRIS Performer?
  74.    -9- What are the .tlf files used by the Performer Town and Village?
  75.   -10- What are the minimum requirements for using IRIS Performer?
  76.   -11- Binary Compatibility on different machines
  77.   -12- Binary Compatibility on different releases
  78.   -13- Guaranteeing Real Time performance
  79.   -14- How do I make GL calls from within a IRIS Performer program?
  80.   -15- How do I overlay graphics on top of my Performer scene?
  81.   -16- What is the difference between phases FREE, FLOAT, and LOCK?
  82.   -17- Which rendering primitives does IRIS Performer support?
  83.   -18- How do I do triangle meshes in Performer?
  84.   -19- What is pfInit(): mmap failed for /dev/zero ?
  85.   -20- =============== KNOWN PROBLEMS ===============
  86.   -21- Performer Town or Village demos
  87.   -22- Antialiasing
  88.   -23- Z buffer configuration on 4.0.5 RealityEngine
  89.   -24- Coplanar Polygons & pfDecal on certain platforms
  90.   -25- Networked graphics
  91.   -26- Transparency
  92.   -27- Frame control on low- and mid-range machines
  93.   -28- Timing on pre-1992 platforms
  94.   -29- 1.2 Bug Billboard normals and intersections
  95.   -30- 1.2 Bug Billboards with multiple pfGeoSets
  96.   -31- 1.2 Bug Flattening transformation hierarchies
  97.   -32- 1.2 Bug Gangdraw and cursor loading
  98.   -33- 1.2 libpf Bug Hang on Exit, 5.2 VGX
  99.   -34- 1.2 libpf Cull with overlapped draw latency
  100.   -35- 1.2 libpf Cull with overlapped draw hang
  101.   -36- 1.2 libpf Transparency Sorting
  102.   -37- 1.2 libpf Multiple EarthSky fog
  103.   -38- 1.2 libpf Bug Limit Phase
  104.   -39- 1.2 libpr Highlighting when using wireframe
  105.   -40- 1.2 libpf APPCULLDRAW does not honor LIMIT/FLOAT/LOCK phases
  106.   -41- 1.2 libpf Phase toggling overlapped cull and draw
  107.   -42- 1.2 libpf pfDataPool warning on exit
  108.   -43- 1.2 libpf Multi-channel stats warning messages
  109.   -44- 1.2 libpf Video warnings on Indy when multiprocessed
  110.   -45- 1.2 stats Frame statistics for lightpoints
  111.   -46- 1.2 stats Pixel fill statistics under 4.0.5 on RealityEngine
  112.   -47- 1.2 libpr Directional pfLightPoints
  113.   -48- 1.2 libpfutil pfuCollide is jerky
  114.   -49- 1.2 libpfutil pfuSaveImage broken
  115.   -50- 1.2 libpfsgi pfLoadDxf loader is incomplete
  116.   -51- 1.2 libpfsgi pfLoadIv loader is incomplete
  117.   -52- 1.2 GLX Overlay text with GLX on 4.0.5
  118.   -53- 1.2 GLX Toggling antialiasing with GLX on 4.0.5 RealityEngine
  119.   -54- 1.2 GLX Toggling antialiasing with GLX on any RealityEngine
  120.   -55- 1.2 GLX on 4.0.5 Indigo, sample programs hang on startup.
  121.   -56- 1.2 samples smallfly drive models broken
  122.   -57- 1.2 samples pickfly drops core under abuse
  123.   -58- 1.2 samples detail example broken on 4.0.5
  124.   -59- 1.2 friends Belvis makefile requires pmake
  125.   -60- 1.2 friends Toon has bad models and textures
  126.   -61- 1.2 docs pfuGetGLXWin wrong on reference page
  127.   -62- 1.2 docs pfuLockDownApp gives the incorrect location
  128.   -63- 1.1 Bug with FP underflow
  129.   -64- 1.1 Bug with Multipipe Onyx
  130.   -65- 1.1 Bug Installing on Indy or Indigo2 XL
  131.   -66- 1.1 Bug Unable to determine Indy graphics type
  132.   -67- 1.1 Bug perfly cannot find libpf.so on Indy running 5.1
  133.   -68- 1.1 Bug perfly FP error messages in 5.0.1
  134.   -69- 1.1 Bug Installation on IRIX 5.2 - missing prerequisites
  135.   -70- 1.0/1.1 Bug intersections with pfSwitch'es
  136.   -71- 1.0/1.1 Bug with pfTexture()
  137.   -72- 1.0/1.1 Bug with pfAntiAlias()
  138.   -73- 1.0/1.1 Bug with pfFlatten()
  139.   -74- 1.0/1.1 Bug with pfSequences
  140.   -75- 1.0/1.1 Bug with pfClosestPtOnPlane()
  141.   -76- 1.0/1.1 Bug on ELAN/XS with wireframe PFGS_QUADS
  142.   -77- 1.0 Doc Bug in pfMakePolarSeg() man page
  143.   -78- 1.0 Doc Bug in pfDispList() man page
  144.   -79- 1.0 Doc Bug in PFPG (simple.c)
  145.   -80- 1.0 Bug in pfGetTime()
  146.   -81- 1.0 Bug in pfNodeBBox()
  147.   -82- 1.0 Bug in pfInitGfx() with Z-buffer on RealityEngine
  148.   -83- 1.0 Bug in libpfflt combineLODs()
  149.   -84- 1.0 Bug with two-sided material and pfMtlColorMode()
  150.   -85- 1.0 Bug in pfFilePath()
  151.   -86- 1.0 Bug in pfGetCurGState()
  152.   -87- 1.0 Bug in pfGetCurState()
  153.   -88- 1.0 Bug with cloned scenes
  154.   -89- 1.0 Bug intersections in collide.c
  155.   -90- 1.0 Bug with flattened pfLightPoints
  156.   -91- 1.0 Bug intersections with pfSequences
  157.   -92- 1.0 Bug intersections with non-indexed quads
  158.  
  159. ----------------------------------------------------------------------
  160.  
  161. Subject:    -1- What is IRIS Performer?
  162. Date: 13 Apr 94 00:00:01 EST
  163.  
  164.   IRIS Performer is a software development environment that supports
  165.   programmers implementing high performance graphics applications on
  166.   Silicon Graphics products.  It offers both high level facilities for
  167.   visual simulation and virtual reality tasks and an
  168.   application-neutral high-performance hardware-oriented graphics
  169.   toolkit.
  170.  
  171.   The outer application specific layer of IRIS Performer implements the
  172.   tasks needed by visual simulation applications: it performs culling
  173.   so that only potentially visable geometry is sent to the graphics
  174.   hardware; it controls multiple display channels; it provides fast
  175.   intersection tests with simulation databases; and most importantly,
  176.   it orchestrates all of this in parallel with rendering on multiple
  177.   processor IRIS systems.
  178.  
  179.   The lower-level rendering portion of IRIS Performer is designed for
  180.   maximum performance: its efficient data structures reflect the
  181.   details of CPU, cache, and memory system architectures; its tuned
  182.   rendering loops convert the system CPU into an optimized data
  183.   movement engine; and its optimized state management system optimizes
  184.   hardware utilization.
  185.  
  186.   IRIS Performer provides a high-performance portability path across
  187.   the Silicon Graphics product line. The low level library is
  188.   implemented as a hardware-specific shared library, so applications
  189.   based on IRIS Performer can achieve peak performance on graphics
  190.   systems from Indy to RealityEngine2 without changes or
  191.   recompilation.
  192.  
  193.   The product includes a programmer's guide and printed man pages, as
  194.   well as on-line man pages, test and demonstration programs, and
  195.   complete real-time visual simulation applications. These applications
  196.   are provided in source form as an examples of how to build real-time
  197.   simulation systems using IRIS Performer.
  198.  
  199.   And lastly, the distribution includes a wide variety of source code,
  200.   demos, models, and utilities that have been provided by 3rd party
  201.   vendors for your use.  We call these vendors "friends of Performer"
  202.   and we encourage you to sample their wares.
  203.  
  204. ------------------------------
  205.  
  206. Subject:    -2- Where can I get more technical information about IRIS
  207.                 Performer?
  208. Date: 06 Oct 93 00:00:01 EST
  209.  
  210.   The best method is to join the IRIS Performer mailing list.
  211.  
  212.   The list is intended to be an unmoderated, free-form discussion of
  213.   IRIS Performer with issues both technical and non-technical; and to
  214.   provide feedback to Silicon Graphics about the product.  Much like
  215.   the comp.sys.sgi.* newsgroups, it is not an official support channel
  216.   but is monitored by several interested SGI employees familiar with
  217.   the toolkit.
  218.  
  219.   To become a subscriber to the IRIS Performer mailing list you must
  220.   send email to:
  221.  
  222.     info-performer-request@sgi.com
  223.  
  224.   New subscribers are added "by hand".  Once your request is processed
  225.   you will recieve submission/posting instructions, some guidelines,
  226.   and a current copy of the Performer Frequently-Asked-Questions (FAQ)
  227.   list.
  228.  
  229. ------------------------------
  230.  
  231. Subject:    -3- Where can I get more product information about IRIS
  232.                 Performer?
  233. Date: 06 Jun 93 00:00:01 EST
  234.  
  235.   For product information about IRIS Performer or SGI Visual Simulation
  236.   issues contact John Burwell (johnnyb@asd.sgi.com).  To learn about
  237.   SGI Virtual Reality solutions contact Joshua Mogal (415) 390-1460
  238.   (mogal@asd.sgi.com).  To just give in and buy a copy call SGI Direct
  239.   at 1-800-800-7441 (product SC4-PERF-1.2), or to have both a
  240.   demonstration and a presentation call your local SGI sales office.
  241.  
  242. ------------------------------
  243.  
  244. Subject:    -4- How does IRIS Performer relate to IRIS Inventor?
  245. Date: 26 Jun 93 00:00:01 EST
  246.  
  247.   The short answer is, Performer was designed for vis-sim, while
  248.   Inventor was designed to be more general purpose.
  249.  
  250.   IRIS Performer is for developers who need to extract maximum
  251.   performance from SGI machines for visual simulation, virtual reality,
  252.   game development, and high-end CAD systems.  Often these applications
  253.   need multi-processor Onyx systems with multiple RealityEngine
  254.   pipelines with a high degree of parallelism and running at fixed
  255.   frame rates.
  256.  
  257.   Inventor is designed for maximum programmer productivity when writing
  258.   other kinds of 3D applications, like modelling, animation,
  259.   visualization, etc.
  260.  
  261.   Both toolkits are general purpose enough that they could be extended
  262.   into the domain of the other, but the question you should consider is
  263.   "what is the *fundamental* goal of my graphics development?" If it's
  264.   portability to non-SGI systems, easy X-window system integration, or
  265.   handy graphic widgets, IRIS Inventor is for you.  If it's brochure-
  266.   level performance in advanced graphic applications for the specific
  267.   domains listed above, then IRIS Performer would be the likely tool.
  268.  
  269. ------------------------------
  270.  
  271. Subject:    -5- What are the released versions of IRIS Performer?
  272. Date: 8 Apr 94 00:00:01 EST
  273.  
  274.   IRIS Performer 1.2/IRIX5:  For machines running IRIX 5.2 or above
  275.   IRIS Performer 1.2/IRIX4:  For machines running IRIX 4.0.5(A-J) only
  276.   IRIS Performer 1.1:  (now obsolete) For machines running IRIX 5.x only
  277.   IRIS Performer 1.0:  (now obsolete) For machines running IRIX 4.x only
  278.  
  279.   Note that 1.2 is shipped for both 4.0.5 and 5.2 systems.  You should
  280.   only install that version of IRIS Performer that is appropriate for
  281.   your machine.  The IRIS Performer version is indicated by the "Irix4"
  282.   or "Irix5" string in each product name.  Irix4 products should only
  283.   be installed on 4.0.5 systems and Irix5 products should only be
  284.   installed on 5.2 systems.
  285.  
  286.   When a choice is possible between IRIX 5.2 and IRIX 4.0.5, IRIX 5.2
  287.   is preferable.  IRIX 5.2 is the current operating system release and
  288.   contains many bug fixes and enhancements utilized by IRIX Performer
  289.   1.2.   IRIS Performer 1.2 for IRIX 4.0.5 is intended only for users
  290.   who are unable to upgrade to IRIX 5.2.
  291.  
  292. ------------------------------
  293.  
  294. Subject:    -6- Is there a IRIS Performer file format?
  295. Date: 26 Oct 93 00:00:01 EST
  296.  
  297.   Not at this time.  A binary file format is a desired feature for a
  298.   future release.  Currently, IRIS Performer has functionality to load
  299.   other vendors' database files at run time.
  300.  
  301. ------------------------------
  302.  
  303. Subject:    -7- What database file formats can IRIS Performer read?
  304. Date: 8 Apr 94 00:00:01 EST
  305.  
  306.   IRIS Performer 1.2 includes loading utilities and file loaders for:
  307.  
  308.       - The SGI .bin, .sgo, .gfo, .poly, and .ptu formats
  309.       - IRIS Inventor's .iv format.
  310.       - Coryphaeus' Software .dwb format.
  311.       - Software Systems Version 11, 13, and 14 .flt
  312.       - The SuperViewer .sv format used in I3DM
  313.       - Lightscape Graphics Software's .lsa and .lsb formats
  314.       - Autodesk's AutoCAD .dxf format
  315.       - Miscellaneous formats (.gfo, .irtp, .stla, .stlb).
  316.  
  317.   For source code to loaders for MultiGen .flt versions greater than
  318.   11, contact Software Systems at (408) 247-4326.
  319.  
  320.   IRIS Performer 1.0 and 1.1 include database loaders for MultiGen v11
  321.   "flt", SGI "bin", and SGI "obj" formats.
  322.  
  323. ------------------------------
  324.  
  325. Subject:    -8- Is there an IRIS Inventor file reader for IRIS
  326.                 Performer?
  327. Date: 8 Apr 94 00:00:01 EST
  328.  
  329.   Yes.  IRIS Performer 1.2 includes a .iv reader that will read a
  330.   subset of the IRIS Inventor 1.0 format.  A fully-functional reader
  331.   for Open Inventor files will be released via the performer mailing
  332.   list at a future time.
  333.  
  334. ------------------------------
  335.  
  336. Subject:    -9- What are the .tlf files used by the Performer Town and
  337.                 Village?
  338. Date: 8 Apr 94 00:00:01 EST
  339.  
  340.   They are encrypted .flt files of the Town and Village database.  Only
  341.   the "demo" version of perfly can read these files.
  342.  
  343.   Unencrypted versions of the Town and Village databases are included
  344.   in the performer_friends.sw.town subsystem of Performer 1.2.
  345.  
  346. ------------------------------
  347.  
  348. Subject:   -10- What are the minimum requirements for using IRIS
  349.                 Performer?
  350. Date: 8 Apr 94 00:00:01 EST
  351.  
  352.   IRIS Performer 1.2/IRIX5 requires IRIX 5.2.  This is the recommended
  353.   configuration for users of IRIS Performer.
  354.  
  355.   IRIS Performer 1.2/IRIX4 requires IRIX 4.0.5.  Because IRIX 4.0.5F
  356.   added several new Graphics Library (GL) calls to support
  357.   RealityEngine features, any application that uses GL routines or
  358.   tokens found only in 4.0.5F and later, will not run properly under
  359.   4.0.5C and earlier releases.
  360.  
  361. ------------------------------
  362.  
  363. Subject:   -11- Binary Compatibility on different machines
  364. Date: 8 Apr 94 00:00:01 EST
  365.  
  366.   In Performer 1.2 for IRIX 4.0.5, libpr is platform- specific with one
  367.   of two versions installed depending on whether the machines is a
  368.   RealityEngine or not.  Binaries linked on non-RealityEngine machines
  369.   will run on a RealityEngine, but not all features will be available.
  370.  
  371.   Performer 1.2 for IRIX 5.2 contains a single version of libpr for all
  372.   machines.  Applications built with Performer 1.2 for Irix 5.2 are
  373.   fully compatible across machines and can run on any Irix 5.2 machine
  374.   without relinking.
  375.  
  376. ------------------------------
  377.  
  378. Subject:   -12- Binary Compatibility on different releases
  379. Date: 8 Apr 94 00:00:01 EST
  380.  
  381.   IRIS Performer requires IRIX 4.0.5 or later.  Because IRIX 4.0.5F
  382.   added several new GL calls to support RealityEngine features, an
  383.   application that uses GL routines or tokens found only in 4.0.5F and
  384.   later does not run properly under 4.0.5, 4.0.5B, or 4.0.5C.  When run
  385.   on these earlier IRIX releases, an IRIS Performer application making
  386.   calls to GL functions or using GL tokens that are undefined in the
  387.   run-time environment cause run-time errors or undefined behavior.
  388.  
  389.   An IRIS Performer binary compiled and linked under IRIX releases
  390.   earlier than 4.0.5F, run under IRIX 4.0.5F and later, but some
  391.   RealityEngine features are not directly accessible to the
  392.   application.  An application can still access RealityEngine features
  393.   supported automatically or explicitly through IRIS Performer when
  394.   linked with IRIS Performer shared libraries.
  395.  
  396.   Running a IRIS Performer application built with IRIX 4.0.5 on IRIX
  397.   5.X is not recommended.  In particular, multiprocess applications
  398.   cannot take advantage of all processors.  Also, because IRIX 4.0.5's
  399.   relaxed shared memory accounting was replaced by a despotic and
  400.   stricter regime under IRIX 5.2, a Performer application built on
  401.   4.0.5 will need a much larger amount of swap space to be allocated up
  402.   front unless PFTMPDIR is used to specify a memory mapped file.
  403.  
  404. ------------------------------
  405.  
  406. Subject:   -13- Guaranteeing Real Time performance
  407. Date: 8 Apr 94 00:00:01 EST
  408.  
  409.   Since having other applications running can effect real-time
  410.   performance, it's sometimes desirable to minimize the number of
  411.   daemons and other processes.  If you have problems achieving real-
  412.   time behavior, try the pfuLockCPU in libpfutil.  You might also try
  413.   turning off the desktop support and other daemons that are not
  414.   crucial to your application, e.g.:
  415.  
  416.      % touch ~/.disableDesktop
  417.     or
  418.      % mkdir ~/.desktop-<machinename>
  419.      % touch ~/.desktop-<machinename>/nodesktop
  420.  
  421.   and for total removal do:
  422.  
  423.      % chkconfig desktop off
  424.      % chkconfig objectserver off
  425.      % chkconfig directoryserver off
  426.      % chkconfig fontserver off
  427.      % chkconfig soundscheme off
  428.  
  429.   Other tips:
  430.  
  431.      - Be sure to run as root.
  432.  
  433.      - Be sure to kill any clocks, gr_osview, or other tools that may
  434.        wake up and draw themselves.
  435.  
  436.      - When multiprocessing, make sure the executable is on a local
  437.        file system.
  438.  
  439. ------------------------------
  440.  
  441. Subject:   -14- How do I make GL calls from within a IRIS Performer
  442.                 program?
  443. Date: 26 Oct 93 00:00:01 EST
  444.  
  445.   GL calls can only be made from a process that has a GL context.  In
  446.   multi-process Performer applications only the draw process has GL
  447.   context, so you must make your GL calls in a function called in the
  448.   draw process.
  449.  
  450.   The pipe initialization callback, draw function callback, and node
  451.   draw callbacks are all executed in the draw process.
  452.  
  453.   In an application that only will ever run single-process, GL calls
  454.   can be made from anywhere in the program.
  455.  
  456.   To set up a pipe initialization callback, see the pfInitPipe()
  457.   manpage.  To set up a draw function callback, see the
  458.   pfChanDrawFunc() manpage.  To set up a node draw callback, see the
  459.   pfNodeTravFuncs() manpage.
  460.  
  461. ------------------------------
  462.  
  463. Subject:   -15- How do I overlay graphics on top of my Performer scene?
  464. Date: 06 Oct 93 00:00:01 EST
  465.  
  466.   Typically this is done to implement a heads-up display (HUD).
  467.  
  468.   In the draw function callback, the basic algorithm is:
  469.  
  470.       save state with pfPushState()
  471.       disable textures, fog, & lighting with pfBasicState()
  472.       save & clear projection matrix
  473.       ortho2()
  474.       save & clear modelling matrix
  475.       draw()
  476.       restore modelling matrix
  477.       restore projection matrix
  478.       restore state with pfPopState()
  479.  
  480.   Or, you can draw your static info in the overlay planes and only
  481.   redraw it when the window receives a REDRAW event (moved, resized,
  482.   etc.).  Changing between drawing to the overlays and drawing to
  483.   regular bitplanes takes a big hit.
  484.  
  485.   For things that need to be updated real-time, draw() would consist
  486.   of:
  487.  
  488.           zfunction(ZF_ALWAYS);
  489.           zwritemask(0x0);
  490.       draw HUD stuff
  491.           zfunction(ZF_LEQUAL);
  492.           zwritemask(0xffffffff);
  493.  
  494. ------------------------------
  495.  
  496. Subject:   -16- What is the difference between phases FREE, FLOAT, and
  497.                 LOCK?
  498. Date: 26 Oct 93 00:00:01 EST
  499.  
  500.   PFPHASE_FREE_RUN wakes the application and draw processes up on the
  501.   next video field boundary after the draw finishes. i.e. it's
  502.   Performer's version of the usual run as-fast-as-I-can or
  503.   as-slow-as-I-must mode that most simple graphics programs use.
  504.  
  505.   PFPHASE_FLOAT wakes the application up only on frame boundaries,
  506.   i.e.  time = n*(1/frame_rate).  However, the draw process "floats"
  507.   with respect to the frame rate and wakes up on the next possible
  508.   field boundary and then does a swapbuffers() when it's done,
  509.   regardless of whether it finished drawing in time for the desired
  510.   frame rate.  Hence you see every frame that's drawn to the
  511.   backbuffer, but it may not appear at exactly the time for which it
  512.   was planned.  If you never frame extend, it behaves like
  513.   PFPHASE_FIXED.  Latency is variable.
  514.  
  515.   PFPHASE_LOCK wakes the application and draw up only on frame
  516.   boundaries and only swaps on frame boundaries.  The advantage is that
  517.   each new image always appears at precisely the time for which it was
  518.   rendered.  The disadvantage is that if the draw runs even slightly
  519.   over a frame time, you skip that entire frame and are stuck with an
  520.   outdated picture for a frame.  Latency is fixed.
  521.  
  522.   For more information see the pfPhase() man page or section 7.1.2 of
  523.   the PFPG.
  524.  
  525. ------------------------------
  526.  
  527. Subject:   -17- Which rendering primitives does IRIS Performer support?
  528. Date: 8 Apr 94 00:00:01 EST
  529.  
  530.   Points (PFGS_POINTS), 
  531.   Independent line segments (PFGS_LINES), 
  532.   Connected line strips (PFGS_LINESTRIPS), 
  533.   Flat connected line strips (PFGS_FLAT_LINESTRIPS), 
  534.   Independent Triangles (PFGS_TRIS), 
  535.   Connected triangle strips (PFGS_TRISTRIPS),
  536.   Flat Connected triangle strips (PFGS_FLAT_TRISTRIPS),
  537.   Independent quadrilaterals (PFGS_QUADS).
  538.  
  539.   See the pfGeoSet(3pf) man page for more information.
  540.  
  541. ------------------------------
  542.  
  543. Subject:   -18- How do I do triangle meshes in Performer?
  544. Date: 06 Oct 93 00:00:01 EST
  545.  
  546.   You must change your triangle meshes to triangle strips by hand.  In
  547.   Performer 1.2, pfuMeshGSet (from libpfutil) will do this for you.
  548.  
  549. ------------------------------
  550.  
  551. Subject:   -19- What is pfInit(): mmap failed for /dev/zero ?
  552. Date: 26 Oct 93 00:00:01 EST
  553.  
  554.   This means that you tried to run a Performer 1.0 application (such as
  555.   a 4.x version of perfly) on a machine running IRIX 5.x.  Virtual
  556.   memory management is different in IRIX 5.x.  In order for your
  557.   program to work properly you must:
  558.  
  559.      % setenv PFTMPDIR /usr/tmp
  560.  
  561. ------------------------------
  562.  
  563. Subject:   -20- =============== KNOWN PROBLEMS ===============
  564. Date: 8 Apr 94 00:00:01 EST
  565.  
  566. ------------------------------
  567.  
  568. Subject:   -21- Performer Town or Village demos
  569. Date: 26 Oct 93 00:00:01 EST
  570.  
  571.   It was reported that perfly would cause an Onyx RE or VTX running
  572.   IRIX 5.0 to hang.  This was fixed in 5.0.1.
  573.  
  574.   In 5.0.1, perfly would generate floating point exceptions due to a
  575.   bug in the font manager library (libfm).  This was fixed in 5.1.
  576.  
  577.   In 5.x, the town and village demos could sometimes be 'jerky'.  This
  578.   is better in 5.2.  See the above section on "Guaranteeing Real Time
  579.   performance"
  580.  
  581. ------------------------------
  582.  
  583. Subject:   -22- Antialiasing
  584. Date: 8 Apr 94 00:00:01 EST
  585.  
  586.   When it is not multisampling, pfAntialias can significantly degrade
  587.   performance.  Specifically, on non-RealityEngine systems, use
  588.   pfAntialias only for lines and points.
  589.  
  590. ------------------------------
  591.  
  592. Subject:   -23- Z buffer configuration on 4.0.5 RealityEngine
  593. Date: 8 Apr 94 00:00:01 EST
  594.  
  595.   Z buffer config on 4.0.5 RealityEngine: On some versions of IRIX
  596.   4.0.5, mssize(4,24,1) (the default by pfAntiAlias) generates an
  597.   unusable Z configuration.  For these machines, call mssize(4,32,1)
  598.   followed by gconfig() in your pipe initialization routine and do not
  599.   attempt to toggle antialiasing.
  600.  
  601. ------------------------------
  602.  
  603. Subject:   -24- Coplanar Polygons & pfDecal on certain platforms
  604. Date: 8 Apr 94 00:00:01 EST
  605.  
  606.   pfDecal works only on machines that support the stencil or
  607.   displacepolygon command.  The default decaling mode for PFDECAL_BASE
  608.   now uses displacepolygon instead of stencil.  This can significantly
  609.   improve rendering performance but can result in visual anomalies
  610.   where layer polygons incorrectly "poke" through other geometry.  If
  611.   you wish the old behavior then specify the PFDECAL_BASE_HIGH_QUALITY
  612.   token.
  613.  
  614. ------------------------------
  615.  
  616. Subject:   -25- Networked graphics
  617. Date: 8 Apr 94 00:00:01 EST
  618.  
  619.   Networked graphics: libpf does not support applications that use
  620.   networked GL, that is DGL.  However, applications using libpr can use
  621.   DGL.
  622.  
  623. ------------------------------
  624.  
  625. Subject:   -26- Transparency
  626. Date: 8 Apr 94 00:00:01 EST
  627.  
  628.   pfTransparency works only on machines that support either
  629.   blendfunction or multisampling.
  630.  
  631.   Sometimes users report that their transparency seems quantized.  This
  632.   is not a bug -- Performer defaults to using Multisample transparency
  633.   (msalpha) when multisampling is enabled, instead of using the
  634.   "standard" (blendfunction) transparency mechanism.
  635.  
  636.   Multisample transparency is faster but has much less resolution, and
  637.   so less quality.  Standard transparency using blendfunction is
  638.   slower, but the quality is very good.
  639.  
  640.   To force Performer to use higher-quality (but slower) transparency
  641.   when multisampling,
  642.  
  643.   1.0/1.1:  pfGStateMode (gstate, PFSTATE_TRANSPARENCY, 2);
  644.   1.2:      pfGStateMode (gstate, PFSTATE_TRANSPARENCY, PFTR_HIGH_QUALITY);
  645.                             aka PFTR_BLEND_ALPHA
  646.  
  647.   In 1.0/1.1 the BLEND_ALPHA token was not exposed, but just use '2'.
  648.   Be sure to revisit this code when you port to 1.2, as the token has
  649.   changed.
  650.  
  651.   See the pfTransparency(3pf) man page for more details.
  652.  
  653. ------------------------------
  654.  
  655. Subject:   -27- Frame control on low- and mid-range machines
  656. Date: 8 Apr 94 00:00:01 EST
  657.  
  658.   Currently, the video clock (pfInitVClock, pfGetVClock, pfVClockSync)
  659.   is supported only on systems with VGX, VGXT, RealityEngine,
  660.   RealityEngine2, Elan, XS, and Extreme graphics hardware.  On other
  661.   systems, pfVClockSync returns immediately.  Because libpf normally
  662.   uses pfVClockSync for frame rate control, frame control is not
  663.   rigorous on other platforms.
  664.  
  665. ------------------------------
  666.  
  667. Subject:   -28- Timing on pre-1992 platforms
  668. Date: 8 Apr 94 00:00:01 EST
  669.  
  670.   Several libpf functions require high-resolution timing information.
  671.   On most recent machines (Indy, Indigo, Indigo2, 4D/35 and Onyx) and
  672.   PowerSeries or Crimson machines with IO3 boards, IRIS Performer uses
  673.   special hardware counters with sub-microsecond resolution.  (The IO3
  674.   board is standard on Crimson and recent 4D/300 and 4D/400 machines.
  675.   You can check for it with the hinv(1M) command.)
  676.  
  677.   On other platforms, for example, those with IO2 boards, the
  678.   time-of-day clock is used, which, by default, has a 10 ms
  679.   resolution.  This resolution is inadequate for many libpf functions,
  680.   including animation sequences (pfSequence), graphics load computation
  681.   (pfChanStress), and the display of accurate channel statistics
  682.   (pfDrawChanStats).
  683.  
  684.   To use any of these features on machines without high- resolution
  685.   hardware timers, enable fast timers.  See the man page for ftimer for
  686.   more information.  Frame rate control particularly bad on machines
  687.   which lack both a fast clock and the video clock used by
  688.   pfVClockSync.
  689.  
  690. ------------------------------
  691.  
  692. Subject:   -29- 1.2 Bug Billboard normals and intersections
  693. Date: 8 Apr 94 00:00:01 EST
  694.  
  695.   During rendering, pfBillboard normals are not affected by the
  696.   transformation applied to make the geometry follow the eye.
  697.   Intersection testing of line segments (pfSegsIsectNode) against the
  698.   pfGeoSet's geometry and bounding box are not yet implemented; only
  699.   the bounding sphere of the entire pfBillboard is available.
  700.  
  701. ------------------------------
  702.  
  703. Subject:   -30- 1.2 Bug Billboards with multiple pfGeoSets
  704. Date: 8 Apr 94 00:00:01 EST
  705.  
  706.   Using pfBillboards with more than one pfGeoSet sometimes causes a
  707.   segmentation violation during the first cull traversal.  Workaround:
  708.   use only a single pfGeoSet per pfBillboard at some cost in
  709.   performance.
  710.  
  711. ------------------------------
  712.  
  713. Subject:   -31- 1.2 Bug Flattening transformation hierarchies
  714. Date: 8 Apr 94 00:00:01 EST
  715.  
  716.   pfFlatten does not work properly on pfGeodes that share pfGeoSets
  717.   with other pfGeodes.
  718.  
  719. ------------------------------
  720.  
  721. Subject:   -32- 1.2 Bug Gangdraw and cursor loading
  722. Date: 8 Apr 94 00:00:01 EST
  723.  
  724.   Loading the cursor with ganged swapbuffers (external swapready wire)
  725.   hangs graphics.  Workaround:  don't load the cursor or run
  726.   applications which change it.
  727.  
  728. ------------------------------
  729.  
  730. Subject:   -33- 1.2 libpf Bug Hang on Exit, 5.2 VGX
  731. Date: 8 Apr 94 00:00:01 EST
  732.  
  733.   On VGXT running 5.2, calling pfExit when the phase is PFPHASE_LOCK or
  734.   PFPHASE_FLOAT can leave an inactive window and DRAW process.
  735.   Workaround: switch to PFPHASE_FLOAT or PFPHASE_FREE before exiting or
  736.   kill -9 <pid> afterwards.
  737.  
  738. ------------------------------
  739.  
  740. Subject:   -34- 1.2 libpf Cull with overlapped draw latency
  741. Date: 8 Apr 94 00:00:01 EST
  742.  
  743.   When running PFPHASE_LIMIT or PFPHASE_FREE, the draw can start late
  744.   resulting in higher latency.
  745.  
  746. ------------------------------
  747.  
  748. Subject:   -35- 1.2 libpf Cull with overlapped draw hang
  749. Date: 8 Apr 94 00:00:01 EST
  750.  
  751.   When running PFPHASE_LIMIT or PFPHASE_FREE, with processes locked and
  752.   non-degrading priorities, it is possible to lock out the X server and
  753.   hang the system.
  754.  
  755. ------------------------------
  756.  
  757. Subject:   -36- 1.2 libpf Transparency Sorting
  758. Date: 8 Apr 94 00:00:01 EST
  759.  
  760.   When the PFCULL_SORT mode of pfChanTravMode is set, transparent
  761.   objects are drawn after all opaque geometry.  However, transparent
  762.   objects are not sorted back to front among themselves, so visual
  763.   anomalies can result when using blended transparency.  Workaround:
  764.   use multisample transparency (PFTR_MS_ALPHA), if available.
  765.  
  766. ------------------------------
  767.  
  768. Subject:   -37- 1.2 libpf Multiple EarthSky fog
  769. Date: 8 Apr 94 00:00:01 EST
  770.  
  771.   When using multiple pipes which share pfEarthSky fog set by
  772.   pfESkyFog, the fog may appear to change densities and flash.
  773.   Workaround: to guarantee that pfClearChan is not called
  774.   simultaneously by more than one pipe.  This may be accomplished with
  775.   a hardware spin lock (see usnewlock)
  776.  
  777. ------------------------------
  778.  
  779. Subject:   -38- 1.2 libpf Bug Limit Phase
  780. Date: 8 Apr 94 00:00:01 EST
  781.  
  782.   The PFPHASE_LIMIT mode of pfPhase only works when the draw stage is
  783.   configured as a separate process.  For example, the PFMP_APP_CULLDRAW
  784.   mode to pfMultiprocess specifies that the cull and draw stages are
  785.   combined into a single process and so will not be affected by a LIMIT
  786.   phase.
  787.  
  788. ------------------------------
  789.  
  790. Subject:   -39- 1.2 libpr Highlighting when using wireframe
  791. Date: 8 Apr 94 00:00:01 EST
  792.  
  793.   Using highlighting when in wireframe mode can cause random,
  794.   flickering, or otherwise misbehaved polygons.
  795.  
  796. ------------------------------
  797.  
  798. Subject:   -40- 1.2 libpf APPCULLDRAW does not honor LIMIT/FLOAT/LOCK
  799.                 phases
  800. Date: 8 Apr 94 00:00:01 EST
  801.  
  802.   When in PFMP_APPCULLDRAW mode, both FREE_RUN and LIMIT act the same;
  803.   as do FLOAT and LOCK.
  804.  
  805. ------------------------------
  806.  
  807. Subject:   -41- 1.2 libpf Phase toggling overlapped cull and draw
  808. Date: 8 Apr 94 00:00:01 EST
  809.  
  810.   When running in the PFMP_CULLoDRAW multiprocessing mode, changing the
  811.   phase from PFPHASE_LOCK or PFPHASE_FLOAT to PFPHASE_FREE_RUN or
  812.   PFPHASE_LIMIT can cause the application to deadlock.
  813.  
  814.   In perfly, rapidly toggling the phase when running with the
  815.   PFMP_CULLoDRAW multiprocessing model ("perfly -m 65540" or "perfly -m
  816.   65542") can cause the application to hang.
  817.  
  818.   Workaround: toggle only once every few frames or not at all.
  819.  
  820. ------------------------------
  821.  
  822. Subject:   -42- 1.2 libpf pfDataPool warning on exit
  823. Date: 8 Apr 94 00:00:01 EST
  824.  
  825.   A warning similar to the following sometimes occurs when a sample
  826.   program exits: "Performer Warning (2):  pfReleaseDPool() Could not
  827.   unlink arena shared memory /usr/tmp/pfUtilDataPool11638.pfdpool."
  828.   This warning is harmless and can be ignored.
  829.  
  830. ------------------------------
  831.  
  832. Subject:   -43- 1.2 libpf Multi-channel stats warning messages
  833. Date: 8 Apr 94 00:00:01 EST
  834.  
  835.   When a multi-channel libpf application enables libpr pfStats modes
  836.   (such as graphics statistics -- PFSTATS_GFX) in multiple channels at
  837.   the same time, warning messages are printed every frame.  The
  838.   calculated statistics will be correct.  To stop the stream of warning
  839.   messages, raise the pfNotifyLevel in the program or set the
  840.   enviornment variable PFNFYLEVEL to a value smaller than 2.
  841.  
  842. ------------------------------
  843.  
  844. Subject:   -44- 1.2 libpf Video warnings on Indy when multiprocessed
  845. Date: 8 Apr 94 00:00:01 EST
  846.  
  847.   When an application on an Indy is forced to run the APP and DRAW in
  848.   separate processes, e.g.  pfMultiprocess(PFMP_APP_CULLDRAW),
  849.   pfGetVideoRate warnings are printed when process timing stats are
  850.   on.  To stop the stream of warning messages, raise the pfNotifyLevel
  851.   in the program or set the enviornment variable PFNFYLEVEL to a value
  852.   smaller than 2.
  853.  
  854. ------------------------------
  855.  
  856. Subject:   -45- 1.2 stats Frame statistics for lightpoints
  857. Date: 8 Apr 94 00:00:01 EST
  858.  
  859.   pfFrameStats for visible uni-directional and bi-directional
  860.   pfLightPoint nodes and points are incorrect.  These statistics are
  861.   part of the pfFrameStats database statistics (PFFSTATS_DB) and these
  862.   specific counts are incorrect.  However, the counts for total number
  863.   of visible pfLightPoint nodes and points are correct, and so are the
  864.   counts for Omni-directional pfLightPoint nodes and points.  However,
  865.   these numbers are only counted when PFFSTATS_CULL are enabled.
  866.  
  867. ------------------------------
  868.  
  869. Subject:   -46- 1.2 stats Pixel fill statistics under 4.0.5 on
  870.                 RealityEngine
  871. Date: 8 Apr 94 00:00:01 EST
  872.  
  873.   Under 4.0.5, fill statistics do not work when multisampling.
  874.   Workaround: turn off multisampling.
  875.  
  876. ------------------------------
  877.  
  878. Subject:   -47- 1.2 libpr Directional pfLightPoints
  879. Date: 8 Apr 94 00:00:01 EST
  880.  
  881.   Specifying a pfLightPoint node as PFLP_UNIDIRECTIONAL or
  882.   PFLP_BIDIRECTIONAL can cause a core dump in pfLightPoint::cull.
  883.   Workaround: set the color of the first light point with
  884.   pfLPointColor(lp, 0, color) before calling pfLPointShape.
  885.  
  886. ------------------------------
  887.  
  888. Subject:   -48- 1.2 libpfutil pfuCollide is jerky
  889. Date: 8 Apr 94 00:00:01 EST
  890.  
  891.   The collision model jerks and bounces when you keep hitting
  892.   something.
  893.  
  894. ------------------------------
  895.  
  896. Subject:   -49- 1.2 libpfutil pfuSaveImage broken
  897. Date: 8 Apr 94 00:00:01 EST
  898.  
  899.   The image file generated by pfuSaveImage is bogus.
  900.  
  901. ------------------------------
  902.  
  903. Subject:   -50- 1.2 libpfsgi pfLoadDxf loader is incomplete
  904. Date: 8 Apr 94 00:00:01 EST
  905.  
  906.   The DXF loader does not fully support the format.
  907.  
  908. ------------------------------
  909.  
  910. Subject:   -51- 1.2 libpfsgi pfLoadIv loader is incomplete
  911. Date: 8 Apr 94 00:00:01 EST
  912.  
  913.   The IRIS Inventor loader reads a subset of the IRIS Inventor 1.0
  914.   format.
  915.  
  916. ------------------------------
  917.  
  918. Subject:   -52- 1.2 GLX Overlay text with GLX on 4.0.5
  919. Date: 8 Apr 94 00:00:01 EST
  920.  
  921.   In the sample programs (e.g. perfly) on some platforms, sometimes
  922.   drawing messages (pfuDrawMessageCI) to the overlay planes in GLX mode
  923.   doesn't work under 4.0.5.  Workaround: use only in GL mode (e.g. do
  924.   not use "perfly -x") or upgrade to IRIX 5.2.
  925.  
  926. ------------------------------
  927.  
  928. Subject:   -53- 1.2 GLX Toggling antialiasing with GLX on 4.0.5
  929.                 RealityEngine
  930. Date: 8 Apr 94 00:00:01 EST
  931.  
  932.   Toggling antialiasing in the sample programs running in GLX mode on a
  933.   4.0.5 RealityEngine apparently confuses the graphics pipe and causes
  934.   wild texturing.  Workaround: use only in GL mode (e.g. do not use
  935.   "perfly -x") or upgrade to IRIX 5.2.
  936.  
  937. ------------------------------
  938.  
  939. Subject:   -54- 1.2 GLX Toggling antialiasing with GLX on any
  940.                 RealityEngine
  941. Date: 8 Apr 94 00:00:01 EST
  942.  
  943.   When antialiasing is toggled with the GUI in GLX mode, the GL window
  944.   changes.  As each texture textures first comes into view, it is
  945.   downloaded to the graphics hardware.  Occasional pauses will be seen
  946.   until all textures are reloaded in the graphics hardware.  This can
  947.   be avoided by redownloading all textures (pfuDownloadTexList).
  948.  
  949. ------------------------------
  950.  
  951. Subject:   -55- 1.2 GLX on 4.0.5 Indigo, sample programs hang on
  952.                 startup.
  953. Date: 8 Apr 94 00:00:01 EST
  954.  
  955.   Some sample programs will hang on startup if in GLX mode.
  956.   Workaround:  start up only in GL mode (e.g. do not use "perfly -x")
  957.   or upgrade to IRIX 5.2.
  958.  
  959. ------------------------------
  960.  
  961. Subject:   -56- 1.2 samples smallfly drive models broken
  962. Date: 8 Apr 94 00:00:01 EST
  963.  
  964.   Toggling the drive-model button in smallfly can cause unexpected
  965.   results.
  966.  
  967. ------------------------------
  968.  
  969. Subject:   -57- 1.2 samples pickfly drops core under abuse
  970. Date: 8 Apr 94 00:00:01 EST
  971.  
  972.   When aggressively navigating the hierarchy, the number of pfSCSes in
  973.   the scene graph can exceed the maximum libpf traversal depth of 64.
  974.  
  975. ------------------------------
  976.  
  977. Subject:   -58- 1.2 samples detail example broken on 4.0.5
  978. Date: 8 Apr 94 00:00:01 EST
  979.  
  980.   The example program sample/pguide/libpf/progs/detail.c doesn't run
  981.   properly under 4.0.5.  Workaround: upgrade to 5.2.
  982.  
  983. ------------------------------
  984.  
  985. Subject:   -59- 1.2 friends Belvis makefile requires pmake
  986. Date: 8 Apr 94 00:00:01 EST
  987.  
  988.   The makefile for the belvis demo in the Computer Arts and Development
  989.   section requires the pmake utility.  Workaround: install
  990.   dev.sw.make.
  991.  
  992. ------------------------------
  993.  
  994. Subject:   -60- 1.2 friends Toon has bad models and textures
  995. Date: 8 Apr 94 00:00:01 EST
  996.  
  997.   Some of the textures are mixed up in toon town.
  998.  
  999. ------------------------------
  1000.  
  1001. Subject:   -61- 1.2 docs pfuGetGLXWin wrong on reference page
  1002. Date: 8 Apr 94 00:00:01 EST
  1003.  
  1004.   The prototype in the man page should read: "extern void
  1005.   pfuGetGLXWin(pfPipe *_pipe, pfuGLXWindow *_glxWin);" pfuGetGLXWin
  1006.   copies the active GLX windows (normal and overlay) for the specified
  1007.   pipe into the provided pfuGLXWindow structure.  The active windows
  1008.   change when a different GLX visual is requested.
  1009.  
  1010. ------------------------------
  1011.  
  1012. Subject:   -62- 1.2 docs pfuLockDownApp gives the incorrect location
  1013. Date: 8 Apr 94 00:00:01 EST
  1014.  
  1015.   pfuLockDownApp gives the incorrect location for the procsetup.c
  1016.   example: The correct location for this example is:
  1017.  
  1018.      /usr/src/Performer/src/pguide/libpfutil/progs/procsetup.c
  1019.  
  1020.   Additionally, the reference page should mention the example
  1021.  
  1022.      /usr/src/Performer/src/pguide/libpf/progs/bench.c
  1023.  
  1024. ------------------------------
  1025.  
  1026. Subject:   -63- 1.1 Bug with FP underflow
  1027. Date: 26 Oct 93 00:00:01 EST
  1028.  
  1029.   The cull process could encounter an FP underflow that could
  1030.   periodically affect cull performance.
  1031.  
  1032. ------------------------------
  1033.  
  1034. Subject:   -64- 1.1 Bug with Multipipe Onyx
  1035. Date: 26 Oct 93 00:00:01 EST
  1036.  
  1037.   There is a bug in the 1.1 multipipe code. The symptom is a core dump
  1038.   and an error like:
  1039.  
  1040.      Performer Fatal (4):pfFree() pointer 0x9c9350 not from pfMalloc
  1041.  
  1042.   The workaround is to do the following after you've created a channel
  1043.   with pfNewChan:
  1044.  
  1045.      ((long**)chan)[3] = NULL;
  1046.  
  1047.   This workaround MUST NOT BE USED in Performer 1.2 applications.
  1048.  
  1049. ------------------------------
  1050.  
  1051. Subject:   -65- 1.1 Bug Installing on Indy or Indigo2 XL
  1052. Date: 8 Apr 94 00:00:01 EST
  1053.  
  1054.   The problems are related to the way that Performer recognizes the
  1055.   graphics hardware in the machine.  Since the Indy was introduced
  1056.   after Performer 1.1 released, Performer is unable to match the
  1057.   graphics type (NEWPORT) with the hardware types it knows.  This
  1058.   effects both the installation and run-time applications.
  1059.  
  1060.   /usr/lib/libpr.a, /usr/lib/libpr-g.a, /usr/src/Performer/demo/perfly,
  1061.   and /usr/src/Performer/src/perfly/Makefile are machine-tagged in inst
  1062.   as platform-specific and will not be installed by default.
  1063.  
  1064.   WORKAROUND:  You must remove IRIS Performer 1.1 from your machine and
  1065.   re-install, explicitly defining the graphics hardware type.  LIGHT
  1066.   (Entry) graphics is the closest approximation to NEWPORT.
  1067.  
  1068.           % su
  1069.           # versions remove performer_eoe
  1070.           # versions remove performer_dev
  1071.           # inst -f <pathname> -m GFXBOARD=LIGHT
  1072.  
  1073. ------------------------------
  1074.  
  1075. Subject:   -66- 1.1 Bug Unable to determine Indy graphics type
  1076. Date: 8 Apr 94 00:00:01 EST
  1077.  
  1078.   Performer 1.1 applications on Indy display the message: "unable to
  1079.   determine graphics type -1.  Default: VENICE"
  1080.  
  1081.   WORKAROUND:  The above message means that Performer was unable to
  1082.   match NEWPORT graphics to a known graphics type, and has defaulted to
  1083.   VENICE (RealityEngine).  This could cause some anomalous behavior in
  1084.   your application.  There is no specific workaround at this time.
  1085.  
  1086. ------------------------------
  1087.  
  1088. Subject:   -67- 1.1 Bug perfly cannot find libpf.so on Indy running 5.1
  1089. Date: 8 Apr 94 00:00:01 EST
  1090.  
  1091.   /usr/src/Performer/demo/perfly fails with the error message:
  1092.   "perfly: rld: Fatal Error: cannot find soname 'libpf.so'"
  1093.  
  1094.   WORKAROUND:  You must recompile perfly from the source code provided
  1095.   in /usr/src/Performer/src/perfly.
  1096.  
  1097. ------------------------------
  1098.  
  1099. Subject:   -68- 1.1 Bug perfly FP error messages in 5.0.1
  1100. Date: 8 Apr 94 00:00:01 EST
  1101.  
  1102.   perfly prints the following error message(s) several times each
  1103.   frame:
  1104.  
  1105.       "Performer Info:FP division by zero"
  1106.       "Performer Info:FP infinity minus infinity"
  1107.  
  1108.   WORKAROUND:  This is caused by a bug in IRIS GL and is not a fatal
  1109.   error.  Run perfly with the "-n 2" option to disable these (and any
  1110.   other) informational messages.
  1111.  
  1112. ------------------------------
  1113.  
  1114. Subject:   -69- 1.1 Bug Installation on IRIX 5.2 - missing prerequisites
  1115. Date: 8 Apr 94 00:00:01 EST
  1116.  
  1117.   When trying to install IRIS Performer 1.1 on a machine running IRIX
  1118.   5.2, you will get an error regarding a missing prerequisite,
  1119.   "dev.sw.libC".  This subsystem contained the C++ runtime library.  In
  1120.   5.2 it has been renamed to "c++_eoe.sw.lib".
  1121.  
  1122.   WORKAROUND:  'set rulesoverride on' from within inst.
  1123.  
  1124. ------------------------------
  1125.  
  1126. Subject:   -70- 1.0/1.1 Bug intersections with pfSwitch'es
  1127. Date: 26 Oct 93 00:00:01 EST
  1128.  
  1129.   Intersections with pfSwitch'es whose value is PFSWITCH_OFF could
  1130.   cause a core dump.
  1131.  
  1132. ------------------------------
  1133.  
  1134. Subject:   -71- 1.0/1.1 Bug with pfTexture()
  1135. Date: 26 Oct 93 00:00:01 EST
  1136.  
  1137.   On RealityEngine systems, EXTERNAL format was ignored.
  1138.  
  1139. ------------------------------
  1140.  
  1141. Subject:   -72- 1.0/1.1 Bug with pfAntiAlias()
  1142. Date: 26 Oct 93 00:00:01 EST
  1143.  
  1144.   On RealityEngine systems, pfAntialias(PFAA_OFF) did not turn off
  1145.   multisampling.
  1146.  
  1147. ------------------------------
  1148.  
  1149. Subject:   -73- 1.0/1.1 Bug with pfFlatten()
  1150. Date: 26 Oct 93 00:00:01 EST
  1151.  
  1152.   pfFlatten did not dirty bounding spheres of flattened nodes so they
  1153.   had improper bounds and would not cull correctly.
  1154.  
  1155. ------------------------------
  1156.  
  1157. Subject:   -74- 1.0/1.1 Bug with pfSequences
  1158. Date: 26 Oct 93 00:00:01 EST
  1159.  
  1160.   pfSequences: PFSEQ_RESUME ignored children's display times and drew
  1161.   subsequent children for 1 frame only.
  1162.  
  1163. ------------------------------
  1164.  
  1165. Subject:   -75- 1.0/1.1 Bug with pfClosestPtOnPlane()
  1166. Date: 26 Oct 93 00:00:01 EST
  1167.  
  1168.   pfClosestPtOnPlane returned wrong result.  Also, the man page had the
  1169.   wrong prototype.
  1170.  
  1171. ------------------------------
  1172.  
  1173. Subject:   -76- 1.0/1.1 Bug on ELAN/XS with wireframe PFGS_QUADS
  1174. Date: 26 Oct 93 00:00:01 EST
  1175.  
  1176.   On EXPRESS Graphics platforms (XS, XS24, ELAN, etc), wireframe quads
  1177.   have a stray line from one vertex to "infinity" when displayed in
  1178.   wireframe mode.
  1179.  
  1180. ------------------------------
  1181.  
  1182. Subject:   -77- 1.0 Doc Bug in pfMakePolarSeg() man page
  1183. Date: 26 Oct 93 00:00:01 EST
  1184.  
  1185.   The man page for pfMakePolarSeg contradicts itself with respect to
  1186.   the meaning of azimuth and elevation. The correct paragraph should
  1187.   be:
  1188.  
  1189.     pfMakePolarSeg sets dst to the segment which starts at pos and
  1190.     has length length and points in the direction specified by azi
  1191.     and elev.  azi specifies the azimuth (or heading), which is the
  1192.     angle which the projection of the segment in the X-Y plane
  1193.     makes with the +Y axis.  elev specifies the elevation (or
  1194.     pitch), the angle with respect to the X-Y plane.  The positive
  1195.     Y axis is azi=0 and elev=0.  Azimuth follows the right hand
  1196.     rule about the +Z azis, e.g. -  +90 degrees is the -X axis.
  1197.     Similarly, elevation follows the right hand rule about the X
  1198.     axis, e.g. -  +90 degrees is the +Z axis.
  1199.  
  1200.   Note that in IRIS Performer 1.0, an azi and elev of 0.0 is equivalent
  1201.   to the +X axis while in 1.1, this has been changed to the +Y axis.
  1202.  
  1203. ------------------------------
  1204.  
  1205. Subject:   -78- 1.0 Doc Bug in pfDispList() man page
  1206. Date: 26 Oct 93 00:00:01 EST
  1207.  
  1208.   The pfDispList man page says the size argument is in bytes; it should
  1209.   say words.
  1210.  
  1211. ------------------------------
  1212.  
  1213. Subject:   -79- 1.0 Doc Bug in PFPG (simple.c)
  1214. Date: 26 Oct 93 00:00:01 EST
  1215.  
  1216.   The program simple.c in the IRIS Performer Programming Guide (PFPG)
  1217.   does not bind a light and draws a black image on Elan systems.  The
  1218.   corrected version, which creates and binds a light in the pipe
  1219.   initialization callback, is in /usr/src/Performer/src/pguide
  1220.  
  1221. ------------------------------
  1222.  
  1223. Subject:   -80- 1.0 Bug in pfGetTime()
  1224. Date: 26 Oct 93 00:00:01 EST
  1225.  
  1226.   In 1.0, pfGetTime() would occasionally return bad values (off by
  1227.   4000+ seconds) on Indigo2 and machines without a fast counter, e.g.
  1228.   PowerSeries/IO2.
  1229.  
  1230.   There was no workaround.
  1231.  
  1232. ------------------------------
  1233.  
  1234. Subject:   -81- 1.0 Bug in pfNodeBBox()
  1235. Date: 26 Oct 93 00:00:01 EST
  1236.  
  1237.   pfNodeBBox did not set the bounding box of a node.  A symptom was
  1238.   that the bounding boxes of the node would not change when modifying a
  1239.   parent pfDCS.
  1240.  
  1241.   The workaround was to OR the value 0x0010 into the mode, e.g.-
  1242.  
  1243.      pfNodeBBox(node, &bbox, PFN_BMODE_STATIC | 0x0010);
  1244.  
  1245. ------------------------------
  1246.  
  1247. Subject:   -82- 1.0 Bug in pfInitGfx() with Z-buffer on RealityEngine
  1248. Date: 26 Oct 93 00:00:01 EST
  1249.  
  1250.   pfInitGfx on RealityEngines would call lsetdepth(0x0, 0x0),
  1251.   essentially disabling zbuffering.
  1252.  
  1253.   The workaround was to call lsetdepth explicitly after pfInitGfx, in
  1254.   the pipe initialization callback.
  1255.  
  1256. ------------------------------
  1257.  
  1258. Subject:   -83- 1.0 Bug in libpfflt combineLODs()
  1259. Date: 26 Oct 93 00:00:01 EST
  1260.  
  1261.   combineLODs() in the MultiGen .flt converter (in file hier.c) did not
  1262.   set the LOD center of combined LODs.  This would result in strange
  1263.   LOD behavior for LODs which were not modelled about the origin.
  1264.  
  1265. ------------------------------
  1266.  
  1267. Subject:   -84- 1.0 Bug with two-sided material and pfMtlColorMode()
  1268. Date: 26 Oct 93 00:00:01 EST
  1269.  
  1270.   Applying a back-sided material which had a color mode
  1271.   (pfMtlColorMode), would set the GL lmcolor mode. Since IrisGL does
  1272.   not support lmcolor for back-sided materials, this could have caused
  1273.   front-sided materials to use an improper lmcolor mode.
  1274.  
  1275. ------------------------------
  1276.  
  1277. Subject:   -85- 1.0 Bug in pfFilePath()
  1278. Date: 26 Oct 93 00:00:01 EST
  1279.  
  1280.   pfFilePath would exit with a FATAL error if it was called twice.
  1281.  
  1282. ------------------------------
  1283.  
  1284. Subject:   -86- 1.0 Bug in pfGetCurGState()
  1285. Date: 26 Oct 93 00:00:01 EST
  1286.  
  1287.   pfGetCurGState returned a pfGeoState which was the top of the state
  1288.   stack rather than the most recently applied pfGeoState.
  1289.  
  1290. ------------------------------
  1291.  
  1292. Subject:   -87- 1.0 Bug in pfGetCurState()
  1293. Date: 26 Oct 93 00:00:01 EST
  1294.  
  1295.   pfGetCurState returned a pfGeoState which was the top of the state
  1296.   stack rather than the current pfState.
  1297.  
  1298. ------------------------------
  1299.  
  1300. Subject:   -88- 1.0 Bug with cloned scenes
  1301. Date: 26 Oct 93 00:00:01 EST
  1302.  
  1303.   pfClone()'ed scenes were not properly cleaned and did not properly
  1304.   propagate updates.  In particular, cloned pfSequences did not work.
  1305.  
  1306. ------------------------------
  1307.  
  1308. Subject:   -89- 1.0 Bug intersections in collide.c
  1309. Date: 26 Oct 93 00:00:01 EST
  1310.  
  1311.   collide.c was shipped with a hardwired intersection mode which turned
  1312.   off intersection caching, substantially reducing intersection
  1313.   performance.
  1314.  
  1315. ------------------------------
  1316.  
  1317. Subject:   -90- 1.0 Bug with flattened pfLightPoints
  1318. Date: 26 Oct 93 00:00:01 EST
  1319.  
  1320.   pfFlatten()'ed pfLightPoints were broken for multiprocessing modes
  1321.   when the application and cull processes were separate.
  1322.  
  1323. ------------------------------
  1324.  
  1325. Subject:   -91- 1.0 Bug intersections with pfSequences
  1326. Date: 26 Oct 93 00:00:01 EST
  1327.  
  1328.   Intersections with pfSequences could sometimes turn them off
  1329.   (PFSEQ_STOP).
  1330.  
  1331. ------------------------------
  1332.  
  1333. Subject:   -92- 1.0 Bug intersections with non-indexed quads
  1334. Date: 26 Oct 93 00:00:01 EST
  1335.  
  1336.   Intersection caching for non-indexed quads was broken and could case
  1337.   a core dump when intersection with pfGeoSets of this type.
  1338.  
  1339. ------------------------------
  1340.  
  1341. End of sgi/faq/performer Digest
  1342. ******************************
  1343. -- 
  1344. The SGI FAQ group                                sgi-faq@viz.tamu.edu
  1345. Finger us for info on the SGI FAQs, or look in viz.tamu.edu:/pub/sgi.
  1346.  
  1347.  
  1348.